Data terminal equipment (DTE) such as computers and facsimile machines routinely send and receive information and control signals through communications networks (i.e. the telephone network). In order to effectively use the network facilities, however, the DTE must have a means of translating digital data into a form suitable for transmission over the network. Similarly, DTE devices at the receiving end must have a means for translating that signal back into digital form, check for errors, and make use of the information.
The most common type of data communications equipment used for such data transmission is a modem. A modem is capable of modulating and demodulating digital data over a communication medium of a communications network. For example, in communicating over a telephone network, one modem translates the digital data generated by the originating DTE into digital pulses and sends the pulses over the telephone network to a second modem at the receiving end. The receiving modem then translates the digital pulses back into the digital data and sends it to the receiving DTE.
A typical present day modem architecture is shown in FIG. 1. As shown, such present day modems have a controller and a digital signal processor (DSP) which are electrically connected to each other through an interface circuit. The controller provides supervisory functions such as inserting control commands in the data stream for error and flow control which is normally referred to as "link layer", and providing data compression. The DSP, codec and the interface circuit together form a data pump which is responsible for carrying out the digital communication portion of various CCITT standards such as the V.34 standard (which establishes 28.8Kb/sec two-way communication). That is, the data pump performs functions such as V.34 startup, retrains, modulation, demodulation, channel equalization, echo cancellation, and timing recovery. Basically, the controller supervises the data stream, and the data pump prepares the stream for communication over a transmission medium (e.g. a phone line).
During operation, the host communicates with the modem controller for several purposes, including: setting the modem features as desired by the DCE host user; and setting the parameters of the modem card. More specifically, the host sets parameters such as attention commands during modem connection, and modem card settings to conform the modem to the desired communication standard including the Personal Computer Memory Card International Association (PCMCIA) standard.
In communicating with the host (DTE), however, the controller must interrupt the host (DTE), and the controller must orchestrate the exchange of the data from the host to the appropriate peripheral. Moreover, the host must wait for the controller to check the success of this data transfer, and report back to the host processor. As a result, in addition to significantly reducing the modem efficiency, the transfer of data from the host to the controller may appear slow to the host user. In addition, this communication requires additional modem hardware, including hardware mailboxes and command registers, thus increasing modem cost.
For example, in many present day modem designs a host processor can transfer data to the modem resources through the modem controller. That is, the controller initiates both record and playback PC DMA transfers, and coordinates data transfers for the DTE (host processor) to the data pump through MIMIC FIFO's that prevent data overruns. As a result, when accessing the resources of the modem the host processor ties-up the operation of the modem controller, and thus significantly adds to modem timing overhead. Moreover, when accessing these resources the host processor has no way of directly accessing the status of these modem peripherals, controller functions, or DSP functions without going through the controller.
This is not desirable for many present and/or future modem applications, wherein the host requires multi-channel communications. For example, there is an increasing need and desire for digital simultaneous voice and data (DSVD) communications through the same DCE or modem. In such DSVD communications, the modem must simultaneously transmit both voice and data communications on the same line. In order to achieve this, the DSP needs to perform a great number of mathematical operations to disguise the speech or voice on the modem waveform when transmitting, and extract the voice when receiving.
More specifically, DSVD communications requires the modem DSP to look at more data points in the bit stream, and requires the modem controller to handle both the separation and combination of two simultaneous bit streams. The increased demand (on the modem controller and DSP) increases the need for a more efficient modem, and thus a more efficient interface between the host (DTE) and the modem (DCE) resources than that provided by present day modems.
Some commercial modems presently make use of the microprocessor of a personal computer and the operating system software (e.g. Windows 3.1) to perform the function of the modem controller. As host processors and their Operating Systems (e.g. Windows '95) become more powerful, the host processor may also be utilized to perform some or all of the functions that are currently done by the modem data pump. To achieve this, however, the host (DTE) processor will need to have direct access to modem peripherals including the I/O peripherals and the modem controller's memory space (i.e. ROM and RAM). As a result, whether the application requires the mixed implementation of functions between the host processor and the modem controller, or the host processor's total control over the modem functions, the host processor must have a means of directly accessing the I/O and memory space of the modem (DCE).